As a database management system (hereinafter referred to as DBMS), an on-disk database in which databases (particularly, main data such as tables and indexes) are arranged in a nonvolatile storage apparatus (typically, a disk storage apparatus such as a hard disk drive (HDD)) and an in-memory database in which databases are arranged in a main memory (generally, a volatile memory) are known (a hybrid DBMS in which an on-disk database and an in-memory database are combined is also known).
In the in-memory database, in order to recover the state of databases on the main memory, it is necessary to output the logs including the update history in a nonvolatile storage apparatus.
In general, logs are output to a single log file during execution of transactions. Even when transactions are processed in parallel in a plurality of cores (or a plurality of central processing units (CPUs)), the output destination of logs is a single log file. Thus, the log output causes a bottleneck.
However, it is not always necessary to determine the order of all transactions. For example, when a set of data referenced or updated by two transactions does not have a common portion, even if an execution order of the two transactions is changed, an operation result on a database does not change. Thus, it is not necessary to determine the order of two transactions. In PTL 1, a log file is prepared for each of distributed databases, and a log including the update history of a database is output to a log file corresponding to the database among a plurality of log files.